package com.software.sqlite.api.app.v1.service;

import com.software.sqlite.api.app.v1.vo.AppV1Result;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;

/**
 * AppService
 */
public interface IMovieV1Service {

    /**
     * 按分类-影片列表
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result movieTypeList(String keyWord,String uuid,String userToken);
    /**
     * 注册
     * @param userName
     * @param password
     * @return
     */
    AppV1Result register(String userName, String password,String mobile,String idCard,String verifyCode,Long shipId,String uuid);
    /**
     * 登录
     * @param userName
     * @param password
     * @param verifyCode
     * @param uuid
     * @return
     */
    AppV1Result login(String userName, String password,String verifyCode,String uuid);

    /**
     * 个人信息
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result myInfo(String uuid,String userToken);

    /**
     * 船舶列表
     * @param keyWord
     * @param uuid
     * @return
     */
    AppV1Result shipList(String keyWord,String uuid);


    /**
     * 党建影视列表
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result dangjianList(String keyWord,String uuid,String userToken);

    /**
     * 综艺列表
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result zongyiList(String keyWord,String uuid,String userToken);
    /**
     * 下载综艺视频
     * @param movieId
     * @param response
     * @throws Exception
     */
    void downloadZongyi(String movieId, HttpServletResponse response)throws Exception;
    /**
     * 下载党建视频
     * @param movieId
     * @param response
     * @throws Exception
     */
    void downloadDangjian(String movieId, HttpServletResponse response)throws Exception;

    /**
     * 播放综艺视频
     * @param movieId
     * @param response
     * @throws Exception
     */
    void showZongyi(String movieId, HttpServletResponse response)throws Exception;
    /**
     * 播放党建视频
     * @param movieId
     * @param response
     * @throws Exception
     */
    void showDangjian(String movieId, HttpServletResponse response)throws Exception;
    /**
     * 影片列表
     * @param keyWord
     * @return
     */
    AppV1Result movieList(String keyWord,String uuid,String userToken,boolean needLogin);

    /**
     * 查询影片是否需要购买
     * @param keyWord
     * @param uuid
     * @param userToken
     * @param movieId
     * @return
     */
    AppV1Result myMovie(String keyWord,String uuid,String userToken,String movieId);

    /**
     * 我的账单
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result myBill(String keyWord,String uuid,String userToken);
    /**
     * 我的收藏
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result myCollect(String keyWord,String uuid,String userToken);


    /**
     * 保存我的收藏
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result saveMyCollect(String keyWord,String uuid,String userToken);
    /**
     * 观看记录
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result myWatch(String keyWord,String uuid,String userToken);

    /**
     * 保存我观看记录
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result saveMyWatch(String keyWord,String uuid,String userToken);
    /**
     * 已购买项目
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result myBuy(String keyWord,String uuid,String userToken);
    /**
     * 我的喜欢
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result myLike(String keyWord,String uuid,String userToken);

    /**
     * 保存我喜欢的影片
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result saveMyLike(String keyWord,String uuid,String userToken);

    /**
     * 钱包充值
     * @param keyWord
     * @param uuid
     * @param userToken
     * @param amount
     * @return
     */
    AppV1Result rechargeWallet(String keyWord, String uuid, String userToken, BigDecimal amount);
    /**
     * 购买影片
     * @param uuid
     * @param userToken
     * @param movieId
     * @return
     */
    AppV1Result purchaseMovie(String uuid,String userToken,String movieId);


    /**
     * 获取播放路径
     * @param uuid
     * @param userToken
     * @param movieId
     * @return
     */
    AppV1Result getPlayUrl(String uuid,String userToken,String movieId,String keyWord,boolean needLogin);

    /**
     * 修改密码
     * @param uuid
     * @param userToken
     * @param password
     * @param newPassword
     * @return
     */
    AppV1Result updatePwd(String uuid,String userToken,String password,String newPassword);

    /**
     * 显示电影图片
     * @param filePath
     * @param request
     * @param response
     */
    void showMovieImg(String filePath, HttpServletRequest request, HttpServletResponse response);

    /**
     * 显示电影Base64图片
     * @param filePath
     * @param request
     * @param response
     * @return
     */
    AppV1Result showMovieImgBase64(String filePath, HttpServletRequest request, HttpServletResponse response);


    /**
     * 卫星流量列表
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result flowDataList(String keyWord,String uuid,String userToken);

    /**
     * 宽带流量列表
     * @param keyWord
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result broadDataList(String keyWord,String uuid,String userToken);


    /**
     * 下单购买流量&宽带
     * @param uuid
     * @param userToken
     * @param productUuid
     * @return
     */
    AppV1Result purchaseFlowOrBroadData(String uuid, String userToken, String productUuid);


    /**
     * 获取SailasTV密钥
     * @param uuid
     * @param userToken
     * @return
     */
    AppV1Result getSailasTVInfo(String uuid, String userToken, boolean needLogin,String androidType);
}

